package ${dispatch};

import ${entity}.${className};
import com.open.model.Page;
import java.util.List;

/**
 * $!codeName
 *
 * @author $!currentUser
 * @date $!date
 */
public interface I${className}Dispatch{
	/**
	 * 添加对象
	 * @param model
	 * @return boolean
	 * @date $!date
	 */
	Boolean save(${className} model);

	/**
	 * 修改对象
	 * @param model
	 * @return boolean
	 * @date $!date
	 */
	Boolean update(${className} model);

	/**
	 * 批量添加对象
	 * @param models
	 * @return boolean
	 * @date $!date
	 */
	Boolean batchSave(List<${className}> models);

	/**
	 * 批量修改对象
	 * @param models
	 * @return boolean
	 * @date $!date
	 */
	Boolean batchUpdate(List<${className}> models);

	/**
	 * 根据条件查询记录数
	 * @param item
	 * @return Integer
	 */
	Integer countByModel(${className} item);

	/**
	 * 根据条件查询
	 * @param model
	 * @return
	 */
	List<${className}> findByModel(${className} model);

	/**
	 * 根据主键查询 
	 * @param pk 主键
	 * @return ${className}
	 * @date $!date
	 */
	${className} findByPk(${pk.jdbcType} pk);

	/**
	 * 分页查询
	 * @param page
	 * @param model
	 * @return
	 */
	Page<${className}> findPage(Page<${className}> page, ${className} model);

	/**
	 * 根据主键批量删除
	 * @param pks 主键
	 * @return boolean
	 * @date $!date
	 */
	Boolean remove(List<${pk.jdbcType}> pks);

	/**
	 * 根据主键删除
	 * @param pk 主键
	 * @return boolean
	 * @date $!date
	 */
	Boolean delete(${pk.jdbcType} pk);
}